package com.ease.integration.context.vo;

import java.io.Serializable;
import java.util.Map;

/**
 * 对应外部接口的context
 * 
 * @author nathanleewei
 * 
 */
public class IntegrationServiceDispatchWrapperContext implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 对外提供的服务名
	 */
	private String externalServiceName;

	/**
	 * 内部服务的key
	 */
	private String integrationServiceDefinitionKey;

	/**
	 * 接收请求时对外提供的参数列表
	 */
	private Map<String, Object> requestArguments;

	/**
	 * 请求中的xml部分
	 */
	// private String requestXmlString;
	/**
	 * 返回的响应对象
	 */
	private Map<String, Object> responseArguments;

	/**
	 * 服务端应答转换后的string
	 */
	// private String responseXmlString;

	public IntegrationServiceDispatchWrapperContext() {
	}

	/**
	 * 收到请求后通过此构造函数构造
	 * 
	 * @param integrationServiceDefinitionKey
	 * @param requestParameters
	 */
	public IntegrationServiceDispatchWrapperContext(String integrationServiceDefinitionKey, Map<String, Object> requestArguments) {
		this.integrationServiceDefinitionKey = integrationServiceDefinitionKey;
		this.requestArguments = requestArguments;
	}

	public IntegrationServiceDispatchWrapperContext(String integrationServiceDefinitionKey, String externalServiceName, Map<String, Object> requestArguments) {
		this.integrationServiceDefinitionKey = integrationServiceDefinitionKey;
		this.externalServiceName = externalServiceName;
		this.requestArguments = requestArguments;
	}

	public String getIntegrationServiceDefinitionKey() {
		return integrationServiceDefinitionKey;
	}

	public void setIntegrationServiceDefinitionKey(String integrationServiceDefinitionKey) {
		this.integrationServiceDefinitionKey = integrationServiceDefinitionKey;
	}

	public String getExternalServiceName() {
		return externalServiceName;
	}

	public void setExternalServiceName(String externalServiceName) {
		this.externalServiceName = externalServiceName;
	}

	public Map<String, Object> getResponseArguments() {
		return responseArguments;
	}

	public void setResponseArguments(Map<String, Object> responseArguments) {
		this.responseArguments = responseArguments;
	}

	public Map<String, Object> getRequestArguments() {
		return requestArguments;
	}

	public void setRequestArguments(Map<String, Object> requestArguments) {
		this.requestArguments = requestArguments;
	}

}
